Wayneko

Wayneko is an animated cat (or dog) for your Wayland desktop. Not quite a port of the original xneko, but just as charming.

It should work with all Wayland servers that support the zwlr-layer-shell protocol.

Caveat: Wayland does not support input spying. A wayland client only gets pointer inputs while the pointer is interacting with its surface. At the time of waynekos creation, the single-pixel-buffer protocol did not exist yet, so creating a transparent surface spanning the entire output was not cheap. Instead I compromised on restricting neko to the bottom of the screen. She can walk left and right and follow the pointer, as long as it's on her height.

You can find the code repository on sourcehut.

wayneko(1)

WAYNEKO(1)                               General Commands Manual                              WAYNEKO(1)

NAME
     wayneko - Neko on Wayland

SYNOPSIS
     wayneko [-h] [--help] [-?]
     wayneko [--background-colour 0xRRGGBB[AA]] [--outline-colour 0xRRGGBB[AA]] [--type neko|inu|random]
             [--idle-sleep seconds] [--sleepiness num] [--sleepiness-night num]
             [--layer background|bottom|top|overlay] [--follow-pointer true|false] [--survive-close]

DESCRIPTION
     Display  an  animated  neko cat on the bottom of an output.  Responds to the pointer being near the
     bottom edge of that output.  While most cats are usually active at night, wayneko likes  to  mostly
     sleep when it's late, only occasionally waking.

     Requires the Wayland server to implement zwlr-layer-shell-unstable-v1.

OPTIONS
     -h, --help, -?
            Print help text and exit.

     --background-colour 0xRRGGBB[AA]
            Set  the  background  fill  colour  using a hexadecimal colour code prefixed by '0x'.  Alpha
            value is optional.

     --outline-colour 0xRRGGBB[AA]
            Set the outline colour using a hexadecimal colour code prefixed by '0x'.  Alpha value is op‐
            tional.

     --type neko|inu|random
            This option lets you choose between neko and her friend inu.

     --idle-sleep seconds
            Set the time in seconds after which neko will go to sleep when the user is idle.

     --sleepiness num
            Set neko's sleepiness as an integer (greater than 0). Higher values make neko  more  sleepy.
            Defaults to 4.

     --sleepiness-night num
            Set  neko's sleepiness at night as an integer (greater than 0). Higher values make neko more
            sleepy. This setting acts as an additional sleepiness on top of the normal  sleepiness.  De‐
            faults to 5.

     --layer background|bottom|top|overlay
            Set  the  layer  for  the surface.  Defaults to bottom.  Bottom is typically beneath regular
            windows and top above them.  Overlay is usually  displayed  even  over  fullscreen  windows.
            Background may conflict with wallpaper clients.

     --follow-pointer true|false
            Set whether neko follows the pointer when it approaches the bottom of the output

     --survive-close
            If  this flag is used, wayneko will recreate the surface after it has been closed.  This al‐
            lows neko to migrate outputs should the one she is currently on  be  disconnected,  but  may
            cause  some  undesired  behaviour should the server try to close the surface for a different
            reason.

AUTHOR
     Code by Leon Henrik Plickat.

     Neko bitmaps taken from public domain.

git.sr.ht/~leon_plickat/wayneko                2024-03-24                                     WAYNEKO(1)